home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8505.d64
/
print using
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
5KB
|
72 lines
10 REM ************************************************************************
11 REM * F O R M A T R O U T I N E *
12 REM ************************************************************************
13 REM * COPYRIGHT: *
14 REM * DR.M.IRSKENS *
15 REM * LEVESER ALLEE 13 *
16 REM * 3061 HESPE *
17 REM ************************************************************************
18 REM * *
19 REM * AUFRUF: *
20 REM * USR(X),FL,NK *
21 REM * X = ZU FORMATIERENDER NUMERISCHER WERT *
22 REM * FL = FELDLAENGE DER FORMATIERTEN ZAHL *
23 REM * NK = ANZAHL NACHKOMMASTELLEN DER FORMATIERTEN ZAHL *
24 REM * DAS ERGEBNIS DER USR-FUNKTION IST DER FORMATIERTE STRING. DIESER *
25 REM * KANN EINER STRINGVARIABLEN ZUGEWIESEN ODER AUSGEDRUCKT WERDEN. *
26 REM * BEISPIELE: *
27 REM * A$=(USR(XY),10,2)+"" *
28 REM * PRINT USR(XY),10,2;" DM" *
29 REM * *
30 REM * BESONDERHEITEN: *
31 REM * WENN NACHKOMMASTELLEN DURCH DAS FORMATIEREN ABGESCHNITTEN WERDEN, *
32 REM * SO WIRD DIE ZAHL GERUNDET. *
33 REM * ZAHLENDARSTELLUNGEN IM E-FORMAT WERDEN EBENFALLS VERARBEITET. *
34 REM * WENN DIE ZAHL IN DER ANGEGEBENEN FELDLAENGE NICHT DARGESTELLT *
35 REM * WERDEN KANN, DANN WIRD DIE ZAHL IN DER NOTWENDIGEN FELDLAENGE DAR- *
36 REM * GESTELLT, UM EINEN ZIFFERVERLUST ZU VERMEIDEN. *
37 REM * *
38 REM * VOR AUFRUF DER FUNKTION MUESSEN FOLGENDE BEFEHLE EINMALIG DURCHGE- *
39 REM * FUEHRT WERDEN: *
40 REM * POKE 785,0 : LOW-BYTE DER STARTADRESSE *
41 REM * POKE 786,192 : HIGH-BYTE DER STARTADRESSE = 49152 *
42 REM * *
43 REM * DIE ROUTINE IST VOLL VERSCHIEBLICH UND KANN DAHER AN JEDER STELLE IM *
44 REM * SPEICHER LIEGEN. DIE ADRESSEN DER USR-FUNKTION SIND DANN ENTSPRECHEND*
45 REM * ANZUPASSEN. *
46 REM * *
47 REM ************************************************************************
100 S=0:INPUT "STARTADRESSE";B
110 FOR I=B TO B+335
120 READ A
130 S=S+A:POKE I,A
140 NEXT I
150 IF S<>36986 THEN PRINT " FEHLER IN DEN DATAZEILEN [146]":STOP
160 POKE 785,B-256*INT(B/256):POKE 786,B/256
170 PRINT " ALLES OK. "
199 REM TESTBEISPIELE
200 FOR E=0 TO 9
210 F=(null)*10^E
220 A$=(USR(F),11,0)+""
230 PRINT A$;USR(F),13,1;USR(F),14,2
240 NEXT E
250 END
299 REM DATAZEILEN
300 DATA32,141,173,32,221,189,32,253,174,32,158,183,134,88,32,253,174,32
301 DATA158,183,134,87,104,104,162,255,160,0,232,189,0,1,240,117,201,69,240
302 DATA8,201,46,208,242,138,168,208,238,173,2,1,201,46,208,12,202,160,1
303 DATA200,185,1,1,153,0,1,208,247,189,2,1,41,15,10,133,2,10,10,101,2,125
304 DATA3,1,233,47,188,1,1,192,45,240,23,105,3,134,2,229,2,168,169,48,157
305 DATA0,1,232,136,208,249,169,0,157,0,1,240,168,133,2,169,0,157,0,1,138
306 DATA24,101,2,168,189,0,1,240,8,201,48,176,4,169,48,208,1,202,153,0,1
307 DATA136,208,236,169,46,141,1,1,208,129,152,240,18,165,87,208,7,152,170
308 DATA189,1,1,208,119,169,44,153,0,1,208,12,196,87,240,40,169,44,157,0
309 DATA1,232,208,16,132,2,56,138,229,2,56,233,1,197,87,240,19,176,72,168
310 DATA169,48,157,0,1,232,200,196,87,208,247,169,0,157,0,1,173,1,1,201,48
311 DATA176,17,232,138,168,185,255,0,153,0,1,136,208,247,169,48,141,1,1,228
312 DATA88,176,20,164,88,189,0,1,153,0,1,136,202,16,246,169,32,153,0,1,136
313 DATA16,250,169,0,160,1,76,135,180,56,229,87,133,2,138,56,229,2,170,189
314 DATA0,1,201,53,144,179,138,168,136,240,24,185,0,1,201,48,144,246,24,105
315 DATA1,201,58,153,0,1,208,157,169,48,153,0,1,208,229,138,168,185,0,1,153
316 DATA1,1,136,208,247,169,49,141,1,1,232,208,131